package com.suncreate.atm;

import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.thread.ThreadUtil;
import cn.hutool.log.StaticLog;
import cn.hutool.setting.Setting;
import com.suncreate.atm.getData.MySQLSync;
import com.suncreate.atm.utils.DataBasesUtils;

import java.util.concurrent.TimeUnit;

public class StartAllClass {

    // 加载配置文件
    static Setting setting = new Setting("jdbc.properties");
    static String thisAppName = setting.get("thisAppName");

    // 源数据库和目标数据库配置
    static int syncDataTimeSeconds = Convert.toInt(setting.get("syncDataTimeSeconds"));

    public static void main(String[] args) {
        int thisTimeSyncTimes=60/syncDataTimeSeconds;

        //如果本机有VIP，无须同步，提前结束同步程序
        if(!DataBasesUtils.checkVIPPassed()){
            return;
        }
        //如果本机有正在运行的程序，无须同步，提前结束同步程序
        if(DataBasesUtils.isProcessRunning(thisAppName)){
            return;
        }

        //每隔N秒钟-启动同步任务,系统定时任务Crontab执行一次，只循环执行固定几次
        while (thisTimeSyncTimes-- > 0){
            StaticLog.info("MySQL同步定时任务启动，{}", DateUtil.now());

            MySQLSync.run();
            ThreadUtil.sleep(syncDataTimeSeconds, TimeUnit.SECONDS);
        }

    }
}
